Systems and methods for processing software application metadata associated with a software application

ABSTRACT

Systems and methods for processing software application metadata associated with a software application are provided. A representative method includes the step of collecting software application metadata associated with a software application. The software application metadata includes a first set of information related at least one of the following: screens, paths, and layers associated with the software application. The method further includes the step of storing the software application metadata in a data repository.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a nonprovisional patent application of copendingU.S. provisional application entitled, “APPLICATION MAP,” having Ser.No. 61/530,401, filed on Sep. 2, 2011, which is entirely incorporatedherein by reference.

TECHNICAL FIELD

The present disclosure is generally related to computer software and,more particularly, is related to systems and methods for processingsoftware application metadata associated with a software application.

BACKGROUND

Computer and web-based software applications are becoming larger in sizeand more complex mainly because they can perform more functionality thantheir predecessors. This can result in an increase in defects that occurin the software applications. Test and quality software applications areavailable to aide software developers in identifying areas withinsoftware applications that have the highest rate of software defects.

Desirable in the art is a test and quality software application thatwould improve upon the test and quality software application.

SUMMARY

Systems and methods for processing software application metadataassociated with a software application are provided. A representativemethod includes the step of collecting software application metadataassociated with a software application. The software applicationmetadata includes a first set of information related at least one of thefollowing: screens, paths, and layers associated with the softwareapplication. The method further includes the step of storing thesoftware application metadata in a data repository.

Another representative method includes the step of creating and mapping“areas” on an application map based on software application metadatacollected from a software application. The software application metadataincludes a first set of information related at least to one of thefollowing: screens, paths and layers associated with the softwareapplication. The method further includes the steps of associating uniqueidentifiers with the respective “areas” on the application map; andoverlaying a second set of information of the software applicationmetadata on top of the “areas” on the application map using the uniqueidentifiers, respectively. The second set of information is related tovarious attributes of the software application.

A representative system includes a processing device and a datarepository that stores an application map manager having instructionsthat are executed by the processing device. The application map managerincludes a map builder that performs the following steps: collectingsoftware application metadata associated with the software application,wherein the software application metadata includes a first set ofinformation related at least one of the following: screens, paths, andlayers associated with the software application; and storing thesoftware application metadata in the data repository.

A representative application map displays a map-like visualization of asoftware application and aides software developers in navigating andanalyzing the various software components of the software application.The application map includes areas on the application map that includescreens; area layers that group at least one area on the applicationmap; paths that link the areas on the application map to another area toshow progression of the software application from one area to another;and data layers that show information that are related to qualityassurance of the features, functionalities, and attributes of thesoftware application.

Other systems, devices, methods, features of the invention will be orwill become apparent to one skilled in the art upon examination of thefollowing figures and detailed description. It is intended that all suchsystems, devices, methods, features be included within the scope of theinvention, and be protected by the accompanying claims.

BRIEF DESCRIPTION OF DRAWINGS

Many aspects of the disclosure can be better understood with referenceto the following drawings. The components in the drawings are notnecessarily to scale, emphasis instead being placed upon clearlyillustrating the principles of the present disclosure. Moreover, in thedrawings, the reference numerals designate corresponding partsthroughout the several views. While several embodiments are described inconnection with these drawings, there is no intent to limit thedisclosure to the embodiment or embodiments disclosed herein. On thecontrary, the intent is to cover all alternatives, modifications, andequivalents.

FIG. 1 is a block diagram that illustrates an embodiment of a systemhaving an application map manager that processes the softwareapplication metadata associated with a software application;

FIG. 2 is a high-level block diagram that illustrates an embodiment ofan application map manager, such as that shown in FIG. 1;

FIG. 3 is a high-level flow diagram that illustrates an embodiment ofthe architecture, functionality, and/or operation of an application mapmanager, such as that shown in FIG. 1;

FIG. 4 is a flow diagram that illustrates an embodiment of thearchitecture, functionality, and/or operation of a map builder, such asthat shown in FIG. 2;

FIG. 5 is a flow diagram that illustrates an embodiment of thearchitecture, functionality, and/or operation of a map visualizer, suchas that shown in FIG. 2;

FIG. 6 is an embodiment of an application map that displays a map-likevisualization of a software application and aides software developers innavigating and analyzing the various software components of the softwareapplication, such as that shown in FIG. 2;

FIG. 7 is an expanded view that illustrates an embodiment of data layersand attributes that can be displayed in an application map, such as thatshown in FIG. 6; and

FIG. 8 is a block diagram illustrating an exemplary architecture for ageneric computer that is similar to the architecture of the computingdevice, local server and central server, such as that shown in FIG. 1.

DETAILED DESCRIPTION

Exemplary systems are first discussed with reference to the figures.Although these systems are described in detail, they are provided forpurposes of illustration only and various modifications are feasible.After the exemplary systems are described, examples of flow diagrams ofthe systems are provided to explain the manner in which softwareapplication metadata associated with a software application is processedand an application map is provided.

In general, application map is a technology that enables a map-likevisualization of a software application. It also provides trackingmodules that obtain quality-related information from the analysis of thesoftware applications. The quality-related information is generally datathat are related to quality assurance of the features, attributes, andfunctionalities of the software applications. The quality-relatedinformation can be overlaid on top of the map-like visualization ofscreens associated with quality assurance of the software applications.The application map can be applied to a variety of software applicationsincluding, but not limited to, desktop and web applications. Thistechnology assists stakeholders to easily understand various qualityaspects of different parts/attributes/features/functionalities of thesoftware applications at many levels of granularity. The application mapcan complement existing reporting and dashboard methods for presentingproject quality information to stakeholders.

FIG. 1 is a block diagram that illustrates an embodiment of a system 100having an application map manager 125 that processes the softwareapplication metadata associated with a software application 240 (FIG.2). The system 100 can include user workstations 120A-D at respectivecustomer premises 115A-D. Each user workstation 120A-D is installed withan application map manager 125. The user workstation 120A-D cancommunication with an application map server 110 that is also installedwith the application map manager 125 and is located in the “cloud” 105.The application map manager 125 provides an application map 600 (FIG. 6)that displays a map-like visualization of the software application 240and aides software developers in navigating and analyzing the varioussoftware components of the software application 240. The application mapmanager 125 can be executed through the cloud 105 or at each workstation120A-D. The application map manager 125 is further described inconnection to FIGS. 2-8.

FIG. 2 is a high-level block diagram that illustrates an embodiment ofan application map manager 125, such as that shown in FIG. 1. In thisexample, the application map manager 125 can include a map visualizer215 at the application map server 110 (FIG. 1) located in the cloud 105and a map builder 210, defect capture tool 220, and test composer 225 ata user workstation 120A (FIG. 1) located in the customer premise 115A(FIG. 1). Although the components of the application map manager 125 areshown to be at the application map server 110 and the user workstation120A, one skilled in the art would appreciate that all of the componentsof the application map manager 125 can located at the workstation 120Aor at the application map server 110.

The map builder 210 captures software application metadata at line 245from a software application 240 at a computing device or a web-basedsoftware application 240 that is under testing. The map builder 210uploads information associated with an application map 600 (FIG. 6) to amap cloud 205 at line 250. The map builder 210 is further described inconnection to FIG. 4.

The defect capture tool 220 and the test composer 225 can also captureand process software application metadata associated with the softwareapplication 240 at line 265 for defects and information associated withtest cases/scripts. The defect capture tool 220 and the test composer225 upload the detected defects at line 270 and the informationassociated with test cases/scripts at line 280, respectively, to the mapcloud 205.

The defect capture tool 220 can associate screen unique identifier 707(FIG. 7) with defect information before uploading a defect to the mapcloud 205 or a defect tracker 230. The test composer 225 can allow usersto generate test cases and/or test scripts automatically and uploadthose test cases and scripts to the map cloud 205. Users can execute atest scenario on the software application 240 under test and have thetools generate execution steps in various formats such as text andprogramming scripts. The test composer 225 can also allow users togather unique identifiers 707 of screens and sequence of steps coveredby each test case/script during the test execution. When each testcase/script is uploaded, associated screens can also be uploaded asmetadata to either the map cloud 205 or a test manager 235.

The map cloud 205 is the centralized cloud-based web applicationproviding a user interface for application map users and an applicationprogramming interface for other components of the application mapmanager 125. The map cloud 205 enables collaboration among users andserves as the integration point for other components of the applicationmap manager 125. The map cloud 205 launches a map visualizer 215 at line255, which retrieves the uploaded software application metadata from themap cloud 205 for generating the application map 600 (FIG. 6). The mapvisualizer 215 is further described in connection to FIG. 5.

A defect tracker 230 retrieves the software application metadataassociated with the detected defects from either the defect capture tool220 or the map visualizer 215 at lines 270, 275, respectively. Thedefect tracker 230 can track the number of defects, severity of defects,defects category, and assigned developers associated with the defectsbased on the collected software application metadata that is related tothe defects. Although the defect tracker 230 is shown to be at theapplication map server 110 or in the cloud 105, one skilled in the artwould appreciate that all defect tracker 230 can located at theworkstation 120A in the customer premise 115A.

A test manager 235 retrieves the software application metadataassociated with the information associated with the test cases/scriptfrom either the test composer 225 or the map visualizer 215 at lines280, 275, respectively. The test manager 235 can be a 3^(rd)-party testmanagement system.

FIG. 3 is a high-level flow diagram that illustrates an embodiment ofthe architecture, functionality, and/or operation of an application mapmanager 125, such as that shown in FIG. 1. Beginning with block 310, themap builder 210 of the application map manager 125 collects softwareapplication metadata associated with a software application 240 (FIG.2). The software application metadata includes a first set ofinformation related at least one of the following: screens A, B, C (FIG.6), paths 632, 637, 642 (FIG. 6), and layers 605, 610, 615 (FIG. 6)associated with the software application 240; and stores the softwareapplication metadata in a data repository 815 (FIG. 8).

At block 320, the map visualizer 215 of the application map manager 125creates and maps “areas” 630, 635, 640 (FIG. 6) on an application map600 (FIG. 6) based on software application metadata collected from thesoftware application 240. At block 330, the application map manager 125associates unique identifiers 707 (FIG. 7) with the respective “areas”630, 635, 640 on the application map 240.

And at block 340, the map visualizer 215 overlays a second set ofinformation of the software application metadata on top of the “areas”on the application map using the unique identifiers, respectively. Thesecond set of information of the software application metadata isrelated to various attributes of the software application, such as,quality-related (or defect) information, application features,application field-level constraints, data entered into the application,frequency of access and entry into screens, paths, layers and fields,and version of the software application. The map visualizer 215 canallow project stakeholders to understand the user interface flow oftheir software application 240, test coverage and defect information.

FIG. 4 is a flow diagram that illustrates an embodiment of thearchitecture, functionality, and/or operation of a map builder 210, suchas that shown in FIG. 2. Beginning with block 405, software applicationA is initiated or launched, and at block 410, map builder 210 isinitiated to analyze/process software application A. At block 415,software application A is operated or used by clicking on user interfaceobjects, entering text/number into edit fields, etc. At block 420, themap builder 210 collects software application metadata associated withsoftware application A into a logfile, for example, and populate ametadata file associated with the collected software applicationmetadata at block 425. The map builder 210 can collect the softwareapplication metadata related to at least one test execution conducted onthe software application A to overlay the test execution information ontop of the application map 600 (FIG. 6).

Additionally or alternatively, the map builder 210 can collect thesoftware application metadata related to defects occurred during a testexecution of the software application A to overlay the defectinformation on top of the application map 600. Additionally oralternatively, the map builder 210 can track the number of defects,severity of defects, defects category, and assigned developersassociated with the defects based on the collected software applicationmetadata that is related to the defects.

Additionally or alternatively, the map builder 210 can collect softwareapplication metadata by combining static analysis of the source and/orbinary and dynamic execution of the software application. Additionallyor alternatively, the map builder 210 can index the software applicationmetadata such that the software application metadata is able to besearched and combined with a second set of information that are relatedto various attributes of the software application.

Additionally or alternatively, the map builder 210 can collect thesoftware application metadata by automatically capturing whole or partof all screens and paths in the software application by way of theinstructions that are executed by the processing device (e.g., automatedcrawler), and by the users manually capturing whole or part of allscreens and paths in the software application by using the softwareapplication as the collecting is performed in the background, and by theusers manually combining screens and paths captured with screens andpaths captured automatically to populate the data repository ofapplication screens, paths and layers.

At block 430, the process of collecting software application metadata iscompleted and the map builder 210 is halted. At block 435, the mapbuilder 210 determines whether to store the software applicationmetadata and/or the metadata file in a data repository 815 (FIG. 8). If“yes,” the map builder 210 at block 440 stores the collected softwareapplication metadata and/or the metadata file associated with softwareapplication A at a local data repository (not shown). At block 445, themap builder 210 determines whether to upload the collected softwareapplication metadata and/or the metadata file to a map cloud 205 (FIG.2). If “yes,” the map builder 210 at block 450 uploads the collectedsoftware application metadata and/or the metadata file to a map cloud205. If “no” is determined at blocks 435 and 445, the map builder 210 atblock 455 can discard the collected software application metadata and/orthe metadata file.

FIG. 5 is a flow diagram that illustrates an embodiment of thearchitecture, functionality, and/or operation of a map visualizer 215,such as that shown in FIG. 2. Beginning with block 505, a userinitializes or launches the map visualizer 215, views a list ofavailable application maps, and select an application map 600 (FIG. 6)associated with software application A. At block 510, the map visualizer215 loads the software application metadata for the software applicationA that was collected at block 515.

At block 525, the map visualizer 215 provides an application map 600 ofthe software application A based on the software application metadataand a user interface controls for users to modify and manipulate theapplication map 600. At block 545, the user can interact with the mapvisualizer 215 controls and can chose to overlay a second set ofinformation of the software application metadata that is collected fromthe map builder 210, defect capture tool 220, or test composer 225, atblock 550.

The map visualizer 215 can overlay the second set of information of thesoftware application metadata on top of the “areas” on the applicationmap by, for example, creating data layers 654, 702 (FIG. 7) that enablea user to zoom into and out of the application map 600 to access thevarious attributes 730 (FIG. 7) of the software application A. A topzoom-out position can be displayed to show the root screen(s) where theuser can choose to zoom into a particular screen to see its childrenscreens at a next area layer 605, 610, 615, 620, 625 (FIG. 6).

The map visualizer 215 at block 555 can display the application map 600,including the overlaid software application metadata. At block 560, theuser exits the map visualizer 215. At block 520, the map visualizer 215can monitor for new/updated software application metadata associatedwith the software application A. At block 530, the map visualizer 215can determine whether the new/updated software application metadata isin fact associated with the software application A. If “no,” the mapvisualizer 215 repeats the functionality at block 520. If “yes,” the mapvisualizer 215 at block 535 updates the current application mapassociated with the software application A with the new/updated softwareapplication metadata. The map visualizer 215 can update the currentapplication map with updated metadata file associated with the softwareapplication A, at block 540. The map visualizer 215 can automaticallyupdate the software application metadata collected in real-time. The mapvisualizer 215 repeats blocks 520, 530, 535 and 540.

FIG. 6 is an embodiment of an application map 600 that displays amap-like visualization of a software application 240 and aides softwaredevelopers in navigating and analyzing the various software componentsof the software application 240, such as that shown in FIG. 2. Theapplication map 600 includes areas 630, 635, 640, 645, 650, 660, 665,670, 675, 680, 685 on the application map 600. In this example, theareas include respective screens A, B, C, D, E, F, G, H, I, J, K, L.

Area layers 605, 610, 615, 620, 625 group at least one area on theapplication map 600. For example, area layer 605 groups area 630; arealayer 610 groups areas 635, 640, 645; area layer 615 groups areas 650,655, 660, 665; area layer 620 groups areas 670, 675; and area layer 625groups areas 680, 685. Paths 632, 637, 642, 647, 652, 657, 662, 667,672, 677, 682, 687 link the areas 630, 635, 640, 645, 650, 660, 665,670, 675, 680, 685 on the application map 600 to another area to showprogression of the software application 240 from one area to another.For example, path 632 links areas 630, 635; path 637 links areas 630,640; path 642 links areas 630, 645; path 647 links areas 635, 650; path652 links areas 635, 655; path 657 links areas 640, 660; path 662 linksareas 645, 665; path 667 links areas 650, 670; path 672 links areas 650,675; path 677 links areas 670, 680; path 682 links areas 675, 685; andpath 687 links areas 685, 665.

Data layers 654, 664, 674, 684 show information that are related toquality assurance of the features, functionalities, and attributes ofthe software application. In this example, defect counts 654, 664, 674,684 are associated with screens C, E, F, J and the screen with a highdefect number (screen C in this case) can be highlighted. Suchinformation allows users to make better decisions to improve thesoftware quality. The data layers are further described in connection toFIG. 7.

As a specific example, if the software application 240 to be analyzed isMicrosoft Word™, then screen A may represent its Home screen (notshown), screen B its Insert screen (not shown), which is accessible fromthe Home screen, and screen F its SmartArt dialog (not shown), which isaccessible from the Insert screen.

Depending on the application's unique characteristics and attributes,such as business logic, use of Ajax technology, UI frameworks andelements etc., the map builder 210 (FIG. 2) can automatically capturewhole or part of all screens and paths in Microsoft Word™. For example,certain navigation path is enabled when specific data is entered orspecific user accesses the screen. In addition, the map builder 210 cancapture screens of applications developed using a certain UI frameworkor with custom UI elements. In such scenarios, end-users can manuallydrive the capturing process by executing Microsoft Word™ while havingthe map builder 210 running in the background. When this method is used,the map builder 210 also generates screen unique identifications 707(FIG. 7), captures screenshot (not shown0 and determines the area layer605, 610, 615, 620, 625 for each screen.

The map builder 210 can combine screens and paths captured via thismanual execution to those captured automatically to populate the datarepository of application screens, paths and layers. When there arechanges to the system, users can trigger any of these processes toupdate the package with new, deleted or modified screens and paths. Theapplication map 600 can be updated automatically as the softwareapplication metadata is collected in real-time.

The map builder 210 can automatically capture information by combiningstatic analysis of application's source and/or binary and dynamicexecution of the application, including output HTML analysis in the caseof web applications. Between every two screens, the map builder 210 canmaintain one (1) or more paths, such as, path 632 from screens A to Band another path 632 from screen B to A regardless of the actual numberof ways to navigate between A and B, which could be numerous, especiallyin the context of web applications. As the map builder 210 captures eachscreen, the map builder 210 can also assign a screen uniqueidentification 707, a screenshot and an area layer 605, 610, 615, 620,625. The root screen can be placed at area layer 1 (605) and itsimmediate children, i.e. those screens accessible from the root screen,having area layer 2 (610) and so on. If a screen is located at multiplearea layers, such as, in the case where there are multiple paths to itfrom different screens, the shallowest area layer is assigned to thatscreen.

The map visualizer 215 can presents screens A, B, C, D, E, F, G, H, I,J, K, L, paths 632, 637, 642, 647, 652, 657, 662, 667, 672, 677, 682,687 and area layers 605, 610, 615, 620, 625 in a map-like userinterface. The map visualizer 215 allows users to zoom out and in of theapplication map 600, such as that shown in FIG. 7. The top zoom-outposition shows the root screen(s) where users can choose to zoom into aparticular screen to see its children screens at the next data layer 702(FIG. 7). As zooming occurs, the map visualizer 215 can re-arrangescreens and paths properly to best visualize them at the current arealayer 605, 610, 615, 620, 625. The map visualizer 215 can allow users tosearch/filter screens, re-organize layers of screens and change pathsamong screens. The map visualizer 215 can visually reflect modificationin real time as users make changes. In addition, the map visualizer 215can allow users to view at least some or all screens and paths at anylayer.

Besides displaying screens and paths, the map visualizer 215 overlays ontop of the application map 600 various quality-related information thatinclude, but are not limited to, test coverage information and defectinformation. Such information can be captured by the test composer 225and the defect capturing tool 220.

FIG. 7 is an expanded view 700 that illustrates an embodiment of datalayers 702 and attributes 730 that can be displayed in an applicationmap 600, such as that shown in FIG. 6. In this example, area 640 (FIG.6) can be zoomed in to show captured screen C, its data layers 654, 702,and its attributes 730. The map visualizer 215 can associate screen C atarea 640 with a unique identifier 707 on the application map 600. Theunique identifiers 707 can be a uniform resource locator (URL) or agenerated number and/or code.

The map visualizer 215 overlays a second set of information of thesoftware application metadata on or on top of area 640 of theapplication map 600 using the unique identifier 707. The second set ofinformation of the software application metadata is related to variousattributes 730 of the software application.

The overlaying of the second set of information of the softwareapplication metadata on or on top of area 640 of the application map 600can be achieved by creating data layers 702 that enable a user to zoominto and out of the application map 600 to access the various attributesof the software application. Data layer 654 displays the defect countassociated with screen C having a unique identifier 707.

A user can also access more information through data layers 702, whichcan be displayed on a graphical user interface (GUI) and show the secondset of information of the software application metadata, which includesat least one of the following: quality-related (or defect) information705, application features 710, application field-level constraints 715,data entered into the application 720, frequency of access and entryinto screens, paths, layers and fields 725, and version of the softwareapplication 727.

Attributes 730 can be displayed on a graphical user interface (GUI) andshows the details of the attributes of the selected data layer from datalayers 702. If defects 705 were selected at data layer 702, attributes730 can display information related to defect distribution, defectcategory distribution, and tester distribution. Examples of otherattributes 730 include, but are not limited to, displaying time-lapseddefect state changing activities over a period of time based on thesoftware application metadata; displaying highlighted screens that werecovered by test cases, enabling users to assess the current coverageratio of at least one test suite; listing the screens from highest tolowest priority based on the results of test cases; and displayingdefects trend over time based on number of defects, severity of defects,defects category, and assigned developers associated with the defects.

FIG. 8 is a block diagram illustrating an exemplary architecture for ageneric computer 800 that is similar to the architecture of thecomputing device, local server and central server, such as that shown inFIG. 1. As indicated in FIG. 8, the computing generic computer 800comprises a processing device 810, data repository 815, one or more userinterface devices 820, one or more I/O devices 830, and one or morenetworking devices 840, each of which is connected to a local interface850. The processing device 810 can include any custom made orcommercially available processor, a central processing unit (CPU) or anauxiliary processor among several processors associated with the genericcomputer 800, a semiconductor based microprocessor (in the form of amicrochip), or a macroprocessor. The data repository 815 can include anyone or a combination of volatile memory elements (e.g., random accessmemory (RAM, such as DRAM, SRAM, etc.)) and nonvolatile memory elements(e.g., ROM, hard drive, tape, CDROM, etc.).

The one or more user interface devices 820 comprise those componentswith which the user (e.g., administrator) can interact with the genericcomputer 800. Where the generic computer 800 comprises a server computeror similar device, these components can comprise those typically used inconjunction with a PC such as a keyboard and mouse.

The one or more I/O devices 830 comprise components used to facilitateconnection of the generic computer 800 to other devices and therefore,for instance, comprise one or more serial, parallel, small systeminterface (SCSI), universal serial bus (USB), or IEEE 1394 (e.g.,Firewire™) connection elements. The networking devices 840 comprise thevarious components used to transmit and/or receive data over networks810, 815, where provided. By way of example, the networking devices 840include a device that can communicate both inputs and outputs, forinstance, a modulator/demodulator (e.g., modem), a radio frequency (RF)or infrared (IR) transceiver, a telephonic interface, a bridge, arouter, as well as a network card, etc.

The data repository 815 normally comprises various programs (in softwareand/or firmware) including an operating system (O/S) 825 and theapplication map manager 125, which has been described above. The O/S 825controls the execution of programs, and provides scheduling,input-output control, file and data management, memory management, andcommunication control and related services.

The systems and methods disclosed herein can be implemented in software,hardware, or a combination thereof In some embodiments, the systemand/or method is implemented in software that is stored in a memory andthat is executed by a suitable microprocessor (μP) situated in acomputing device. However, the systems and methods can be embodied inany computer-readable medium for use by or in connection with aninstruction execution system, apparatus, or device. Such instructionexecution systems include any computer-based system,processor-containing system, or other system that can fetch and executethe instructions from the instruction execution system. In the contextof this disclosure, a “computer-readable medium” can be any means thatcan contain, store, communicate, propagate, or transport the program foruse by, or in connection with, the instruction execution system. Thecomputer readable medium can be, for example, but not limited to, asystem or propagation medium that is based on electronic, magnetic,optical, electromagnetic, infrared, or semiconductor technology.

Specific examples of a computer-readable medium using electronictechnology would include (but are not limited to) the following: anelectrical connection (electronic) having one or more wires; a randomaccess memory (RAM); a read-only memory (ROM); an erasable programmableread-only memory (EPROM or Flash memory). A specific example usingmagnetic technology includes (but is not limited to) a portable computerdiskette. Specific examples using optical technology include (but arenot limited to) optical fiber and compact disc read-only memory(CD-ROM).

Note that the computer-readable medium could even be paper or anothersuitable medium on which the program is printed. Using such a medium,the program can be electronically captured (using, for instance, opticalscanning of the paper or other medium), compiled, interpreted orotherwise processed in a suitable manner, and then stored in a computermemory. In addition, the scope of the certain embodiments of the presentdisclosure includes embodying the functionality of the preferredembodiments of the present disclosure in logic embodied in hardware orsoftware-configured mediums.

It should be noted that any process descriptions or blocks in flowchartsshould be understood as representing modules, segments, or portions ofcode which include one or more executable instructions for implementingspecific logical functions or steps in the process. As would beunderstood by those of ordinary skill in the art of the softwaredevelopment, alternate embodiments are also included within the scope ofthe disclosure. In these alternate embodiments, functions may beexecuted out of order from that shown or discussed, includingsubstantially concurrently or in reverse order, depending on thefunctionality involved.

This description has been presented for purposes of illustration anddescription. It is not intended to be exhaustive or to limit thedisclosure to the precise forms disclosed. Obvious modifications orvariations are possible in light of the above teachings. The embodimentsdiscussed, however, were chosen to illustrate the principles of thedisclosure, and its practical application. The disclosure is thusintended to enable one of ordinary skill in the art to use thedisclosure, in various embodiments and with various modifications, asare suited to the particular use contemplated. All such modificationsand variation are within the scope of this disclosure, as determined bythe appended claims when interpreted in accordance with the breadth towhich they are fairly and legally entitled.

Therefore, having thus described the disclosure, at least the followingis claimed:
 1. A method of processing software application metadataassociated with a software application, the method comprising the stepsof: collecting software application metadata associated with a softwareapplication, wherein the software application metadata includes a firstset of information related at least one of the following: screens,paths, and layers associated with the software application; and storingthe software application metadata in a data repository.
 2. The method asdefined in claim 1, further comprising indexing the software applicationmetadata such that the software application metadata is able to besearched and combined with a second set of information that are relatedto various attributes of the software application.
 3. The method asdefined in claim 2, wherein the second set of information that arerelated to various attributes of the software application includes atleast one of the following: quality-related (or defect) information,application features, application field-level constraints, data enteredinto the application, frequency of access and entry into screens, paths,layers and fields, and version of the software application.
 4. Themethod as defined in claim 1, wherein the step of collecting thesoftware application metadata associated with the software applicationby using at least one of the following ways: collecting the softwareapplication metadata related to at least one test execution conducted onthe software application to overlay the test execution information ontop of an application map; and collecting the software applicationmetadata related to defects occurred during a test execution of thesoftware application to overlay the defect information on top of theapplication map.
 5. The method as defined in claim 4, further comprisingtracking the number of defects, severity of defects, defects category,and assigned developers associated with the defects based on thecollected software application metadata that is related to the defects.6. The method as defined in claim 1, further comprising generating anapplication map based on the collected software application metadata,wherein the application map displays a map-like visualization of thesoftware application that aides software developers in navigating andanalyzing the various software components of the software application as“areas” on the application map.
 7. The method as defined in claim 1,wherein collecting application metadata associated with the softwareapplication is achieved by combining static analysis of the sourceand/or binary and dynamic execution of the software application.
 8. Themethod as defined in claim 1, wherein collecting the softwareapplication metadata associated with the software application isachieved by automatically capturing whole or part of all screens andpaths in the software application by way of the instructions that areexecuted by the processing device.
 9. The method as defined in claim 1,wherein collecting the software application metadata associated with thesoftware application is achieved manually by users to capture whole orpart of all screens and paths in the software application by using thesoftware application as the collecting is performed in the background.10. The method as defined in claim 9, wherein collecting the softwareapplication metadata associated with the software application isachieved by combining screens and paths captured manually by the userswith screens and paths captured automatically to populate the datarepository of application screens, paths and layers. 11-16. (canceled)17. A system that processes software application metadata associatedwith a software application, the system comprises: a processing device;and a data repository that stores an application map manager havinginstructions that are executed by the processing device, the applicationmap manager comprises: a map builder that performs the following steps:collecting software application metadata associated with the softwareapplication, wherein the software application metadata includes a firstset of information related at least one of the following: screens,paths, and layers associated with the software application; and storingthe software application metadata in the data repository.
 18. The systemas defined in claim 17, wherein the application map manager furthercomprises a map visualizer that performs the following steps: creatingand mapping “areas” on an application map based on the softwareapplication metadata collected from the software application;associating unique identifiers with the respective “areas” on theapplication map; and overlaying a second set of information of thesoftware application metadata on top of the “areas” on the applicationmap using the unique identifiers, respectively, wherein the second setof information of the software application metadata is related tovarious attributes of the software application.
 19. The method asdefined in claim 18, wherein the second set of information of thesoftware application metadata includes at least one of the following:quality-related (or defect) information, application features,application field-level constraints, data entered into the application,frequency of access and entry into screens, paths, layers and fields,and version of the software application.
 20. (canceled)